package asteroids.model.expressions;

import java.util.*;
import asteroids.model.types.*;

/**
 * A subclass of expression (E) that represents all the expressions that Get something of an executer
 * 
 * @version 1.0
 * 
 * @author	Thijs Peirelinck & Wouter Parys
 *
 */
public abstract class Get extends UnaryExpression {
	
	
	public Get(E e) {
		super(e);
	}
	
	@Override
	public abstract Double getValue();
	
	@Override
	public abstract boolean isValidExpression();
	
	@Override
	public String getReturnType() {
		return "double";
	}
	
	@Override
	public  abstract String toString();
	
	@Override
	public boolean typeCheck(Map<String, T> globals) {
		return super.typeCheck(globals, "entity");
	}
}


